/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2022-2023. All rights reserved.
 */

package com.huawei.aiservice.constants;

/**
 * 响应码枚举
 *
 * @author developer
 * @since 2022/10/27
 */
public enum ResponseCode {
    /**
     * ---------------------   通用  -------------------------------
     */
    SUCCESS("20000", "请求成功"),
    FAILED("20001", "请求失败"),
    UPLOAD_FILE_FAILED("20002", "上传文件失败"),
    USER_NO_PERMISSION("20003", "用户没有操作权限"),
    REPEATED_SUBMIT("20004", "重复提交"),

    /**
     * ---------------------   ci-daily-codecheck 7003 -------------
     */
    // 每日代码检查使用'3'开头,"1"是bep业务
    DAILY_CODECHECK_FILE_TYPE_ERROR("31001", "文件不格式不正确"),
    DAILY_CODECHECK_FILE_EMPTY("31002", "无sheet表数据"),
    DAILY_CODECHECK_DATA_EMPTY("31003", "空数据"),

    // "2" 开头是webhook接口异常
    DAILY_CODECHECK_INIT_API_RULE_CONFIG_ERROR("32001", "初始化API-LINT检查规则数据异常"),
    DAILY_CODECHECK_INIT_API_TEMPLATE_ID_ERROR("32002", "获取API-LINT检查规则模板数据异常"),
    /**
     * ---------------------   ci-daily-build 7004 -----------------
     */
    // 每日构建使用"4"开头，1是Sbom相关业务
    DAILY_BUILD_FILE_TYPE_ERROR("41001", "文件不格式不正确"),
    DAILY_BUILD_FILE_EMPTY("41002", "无sheet表数据"),

    DAILY_BUILD_EFLOW_STATUS_ERROR("41003", "当前文件存在审批流程未结束"),
    DAILY_BUILD_FIELD_REPEAT("41004", "字段重复"),
    DAILY_BUILD_EFLOW_REJECTED("41005", "电子流已被驳回"),

    /**
     * ---------------------   ci-code-access 7005 ------------------
     */
    CODE_CHECK_ACCESS_STATUS_ERROR("51001", "门禁触发异常，正在处理中，请稍后。"),

    /**
     * ---------------------   ci-data-service 7006 -----------------
     */
    // 数据服务,公共提示1开头
    DATA_FILE_DOWNLOAD_FAIL("61001", "文件下载失败"),
    DATA_SQLITE_RUN_ERROR("61002", "sqlite命令执行失败"),
    DATA_OBS_FILE_NOT_EXIST("61003", "obs文件不存在"),

    /**
     * ---------------------   ci-console-service 7007 ---------------
     */
    CONSOLE_EMPTY_PARAM("70001", "参数不能为空"),
    CONSOLE_ROLE_ERROR("70002", "角色有误"),
    CONSOLE_USER_NOT_EXISTS("70003", "用户不存在"),
    CONSOLE_USER_NOT_HAVE_ROLE("70004", "用户没有该角色"),
    CONSOLE_PARAM_ERROR("70005", "参数有误"),
    OPERATION_NAME_REPEAT("70006", "操作名称已存在"),
    EMPTY_PARAM("70007", "参数不能为空"),
    TYPE_ERROR("70008", "类型错误"),
    HAS_CHILD_OPERATION("70009", "权限下存在子权限"),
    NOT_USER("70010", "用户不存在"),
    NETWORK_ERROR("70011", "网络异常"),
    USER_IS_EXIT("70012", "用户账号已添加"),
    NO_PERMISSION("70013", "用户没有操作权限"),
    PARAM_ERROR("70014", "参数错误"),
    ROLE_ERROR("70015", "参数错误"),
    HAS_ROLE("70016", "参数错误"),
    DATA_IS_EXIT("70017", "新增数据已存在"),
    DATA_IS_NOT_EXIT("70018", "数据不存在"),
    HAS_USER_NAME("70019", "用户名已经存在"),
    HAS_USER_NAME_NULL("70020", "用户名不能为空"),
    ALL_ROLE_GROUP_NULL("70021", "角色和群组不能都为空"),
    NAME_REPEAT("70022", "名称或英文名称已存在"),
    REVIEW_STATUS_ERROR("70023", "流程审批中，不能删除"),

    /**
     * ---------------------   ci-manager-service 7008 --------------------
     */
    HISTORICAL_VERSION_EXISTS("80015", "存在历史版本，不能删除"),
    IMAGE_NAME_EXISTS("80016", "镜像名重复"),
    ABNORMAL_STATUS("80017", "镜像状态异常"),
    ALREADY_APPROVAL("80018", "已评审"),
    WITHOUT_APPROVAL("80019", "未通过审批，不能发布"),
    HAS_NAME("80020", "名字已存在"),
    IO_ERROR("80021", "IO异常"),
    APPROVAL_COMPLETE("80022", "审核已经全部完成或没有权限, 不可再修改"),
    NOT_COMMIT("80023", "还未提交不能审核"),
    TOOL_ERROR("80024", "工具错误"),
    NO_AUTHORIZED_PERSON("80025", "no authorized person"),
    IMAGE_NOT_EXISTS("80026", "镜像不存在"),
    DATE_FORMAT_ERROR("80027", "时间格式有误"),
    DELETE_FAIL("80028", "镜像文件发布状态,删除失败"),
    VERSION_EXISTS("80029", "版本号已存在"),
    REVIEW_VERSION_EXISTS("80030", "已存在审核中版本"),
    SIG_ATTRIBUTION_ERROR("80031", "仓归属于其他SIG组"),
    // 环境管理box业务
    MANAGER_BOX_PARAMETER_ERROR("81001", "box参数错误"),
    MANAGER_FILE_TYPE_ERROR("81002", "文件不格式不正确"),
    MANAGER__FILE_EMPTY("81003", "无sheet表数据"),
    IMPORT_DATA_ERROR("81201", "导入数据错误"),

    /**
     * ---------------------   ci-ref-service 7018 --------------------
     */
    NO_GIT_TOKEN("80001", "登录账号没有Git仓库Token"),
    GIT_EMAIL_NOT_OPEN("80002", "Git账号邮箱未公开"),
    TYPE_NOT_GITEE("80003", "登录账号不是Gitee类型"),

    /**
     * ---------------------   ci-sple-service 7019 --------------------
     */
    PARAMS_NOT_EXIST("90001", "生产线、项目名称、分支名称、分支或者标签类型必要参数缺失"),
    FEATURE_NO_REPEATS("90002", "特性功能id重复"),

    FEATURE_NO_ERROR("90003", "特性功能id错误"),

    FEATURE_EXIST_OPTION("90004", "特性下存在规格，请先删除规格"),

    FEATURE_PARAM_NOT_EXIST("90005", "id或者特性id参数缺失"),

    FEATURE_ID_NOT_EXIST("90006", "特性id错误、查不到对应数据"),

    REPEAT_NAME("90007", "重复名称");

    /**
     * 编码
     */
    private String code;

    /**
     * 信息
     */
    private String message;

    ResponseCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}
